Middleware may be used to provide functions to an enterprise. Middleware generally facilitates access to business data within a back-end system by an end-user of such data. More specifically, middleware may perform administrative functions such as conflict checking, integrity checking, and synchronization. These administrative functions may ensure consistency and accessibility of business data throughout the enterprise.
An end-user of business data may interact with the enterprise via a mobile device. In one example, a delivery person may deliver a product to customers along an established route. The delivery person may use a mobile device to determine a product quantity and delivery schedule for each customer on the route, to enter new orders and/or changes to existing orders, and to indicate successful delivery of an order. The mobile device must therefore receive business data from a back-end system that is specific to the route with which the mobile device is associated (e.g., product quantities, delivery schedules). The mobile device must also be able to transmit business data (e.g., new and/or changed order information) to the back-end system for validation and storage therein. Each of these functions may require conflict checking and integrity checking as described above.
The synchronization of business data between a mobile device and a back-end system presents issues that may not arise in a non-mobile context. Primarily, mobile devices might not be continuously connected to their associated back-end systems. It may therefore be more difficult to keep mobile devices up-to-date with respect to their associated data, and to maintain accurate knowledge of the internal state of the mobile devices.
Conventional “replication and realignment” middleware for addressing the foregoing may use a store-and-forward approach in which each message intended for each mobile device is queued as it is received from a back-end system. This approach may require an undesirably large amount of message storage. Bandwidth and processing inefficiencies may also result from this approach because earlier-queued messages are stored-and-forwarded to an associated mobile device even if the earlier-queued messages are rendered unnecessary by later-queued messages. Alternatively, a connect-and-compute approach requires middleware to compute appropriate synchronization messages only after a mobile device is connected thereto.
Improvements to the efficiency of mobile middleware are therefore desired. Moreover, mobile middleware is desired that may provide increased control and/or more robust management of business data than currently available.